home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 24 / AACD 24.iso / AACD / Information / WebSites / AmigaNorthThames / cgi-bin / admin.pl < prev    next >
Perl Script  |  2001-04-21  |  9KB  |  398 lines

  1. #!/usr/bin/perl
  2. ##############################################################################
  3. # Administration Script for NewsDude                                            
  4. #  This script is Copyright (c) 2000 by Perlboy.org, Stuart Low all rights
  5. #  reserved.  It may be used under the terms detailed in 
  6. #  http://www.perlboy.org/scripts/license.html
  7. #
  8. #  YOU MAY MODIFY THIS SCRIPT PROVIDED YOU LEAVE THE ABOVE COPYRIGHT HEADING
  9. #  INTACT.
  10. #
  11. #  Other than that, enjoy the script. I did it mainly for a dude on
  12. #  alt.www.webmaster but also just for a kick on my last day of exams.
  13. #  If you want to get in touch, mail me at thedude@perlboy.org
  14. #  I WILL NOT ANSWER SUPPORT QUESTIONS THOUGH.
  15. #  This is mainly done due to the fact that I am a school student
  16. #  and therefore cannot afford to offer support for my free scripts.
  17. #
  18. #  Once again. Visit alt.www.webmaster there are MANY a soul who will
  19. #  happily help you.
  20. #
  21. #
  22. #  If you own a business and use this on your clients sites
  23. #  Could you please email me and tell me so that I can add your
  24. #  business to a list of Web Design firms which use my script
  25. #  Much appreciated
  26. #  
  27. #  Perlboy. (Stuart Low)
  28. #  thedude@perlboy.org
  29. #
  30. # ------------------------------------------------------------------
  31. ##############################################################################
  32.  
  33.  
  34. # Load Settings
  35.  
  36. require "vars.pl";
  37. require "subs.pl";
  38.  
  39. # Set the home url of this script for any calls, notable the password login_html
  40. $admin_home='http://' . $ENV{'SERVER_NAME'} .  
  41.          ($ENV{'SERVER_PORT'} != 80 ? ":$ENV{'SERVER_PORT'}" : '') .
  42.          $ENV{'SCRIPT_NAME'} . $ENV{'PATH_INFO'} .
  43.          (length ($ENV{'QUERY_STRING'}) ? "?$ENV{'QUERY_STRING'}" : '');
  44. ###
  45.  
  46.  
  47.  
  48. print "Content-Type: text/html\n\n";
  49.  
  50. &FormParse;
  51.  
  52. # Check if Logout is the command, different position to stop looping
  53. if (($FORM{'operation'}) eq 'Logout') { &login_html; exit; }
  54.  
  55. # Password checking processs, checks every time executed, top security.
  56.  
  57. if (!$FORM{'login_password'}) { &login_html; exit; }
  58.  
  59.  
  60. if ($FORM{'login_password'} ne $adminpassword) { &error_html("Wrong password"); }
  61.  
  62. &Date;
  63. # Load some files
  64.  
  65. open(NEWS, "news.arch");
  66. @DelMe=<NEWS>;
  67. close(NEWS);
  68.  
  69. ### Now check for commands
  70.  
  71. # Check for news updates
  72. if ((($FORM{'operation'}) eq 'Add News') and (($FORM{'news_command'}) eq 'Add')) { &News_Add; exit; }
  73. if (($FORM{'operation'}) eq 'Add News') { &News1; exit; }
  74.  
  75. # Check for Deleting News
  76. if ((($FORM{'operation'}) eq 'Delete News') and (($FORM{'news_command'}) eq 'DeleteYes')) { &news_Del2; exit; }
  77. if (($FORM{'operation'}) eq 'Delete News') { &news_Del1; exit; }
  78.  
  79. # If no matches print out the good ol' default page.
  80. print qq~
  81.  
  82. <html>
  83. <head>
  84. <title>Admin Section</title>
  85. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  86. </head>
  87.  
  88. <body background="http://www.amiganorththames.co.uk/Gfx/bg_stripe.gif" text="#000000" link="#DD3300">
  89.  
  90. <form method="POST"><input type="hidden" name="login_password" value="$FORM{'login_password'}"><input type="hidden" name="username" value="$FORM{'username'}">
  91.  
  92.  
  93. <br><center> Welcome $pa_column1{$FORM{'username'}} to the admin section. <BR><br>
  94.  
  95. <table border=0 width=200 ALIGN=CENTER>
  96.   <tr>
  97.      <td><input type="submit" name="operation" value="Add News"></td> </td>
  98.      <td><input type="submit" name="operation" value="Delete News"></td> </td>
  99. </tr>
  100. </table> 
  101.  
  102. <BR>
  103. <TABLE WIDTH=70% ALIGN=RIGHT BORDER=0 CELLSPACING=0 CELLPADDING=1>
  104. <TR>
  105. <TD COLSPAN=2 ALIGN=LEFT>
  106. Your current details are<br>
  107. </TD>
  108. </TR>
  109.  
  110. <TR>
  111. <TD WIDTH=100 ALIGN=RIGHT>
  112. <B>Real Name:</B>
  113. </TD>
  114. <TD>
  115. $adminrealname 
  116. </TD>
  117.  
  118. </TR>
  119. <TR>
  120.  
  121. <TD WIDTH=100 ALIGN=RIGHT> 
  122. <B>Email Address:</B> 
  123. </TD>
  124. <TD>
  125. $adminemailaddress 
  126. </TD>
  127.  
  128. </TR>
  129. <TR>
  130.  
  131. <TD WIDTH=100 ALIGN=RIGHT> 
  132.    <B>  Username:</B> 
  133. </TD>
  134. <TD>
  135. $adminusername 
  136. </TD>
  137.  
  138. </TR>
  139. <TR>
  140.  
  141. <TD WIDTH=100 ALIGN=RIGHT> 
  142.   <B>   Password: </B>
  143. </TD>
  144. <TD>
  145. $adminpassword 
  146. </TD>
  147. </TR>
  148. </TABLE>
  149.  
  150. ~;
  151.  
  152. # Print the footers
  153. print qq~
  154.  
  155. </body></html>
  156.  
  157. ~;
  158.  
  159. sub News1 {
  160.  
  161.  
  162. print qq~
  163.  
  164. <HTML>
  165. <BODY BACKGROUND="http://www.amiganorththames.co.uk/Gfx/bg_stripe.gif">
  166.  
  167.      <center>
  168.      <font face="arial, helvetica" color=red size=+1>
  169.      <strong>Update News<br><br></strong></font></font></font> 
  170.      </center>
  171.      <form method=POST><input type="hidden" name="login_password" value="$FORM{'login_password'}"><input type="hidden" name="username" value="$FORM{'username'}"><input type="hidden" name="operation" value="Add News">
  172.  
  173.  
  174.      
  175. <table border=0 width=60% ALIGN=CENTER>
  176.  
  177. <tr>
  178.  
  179.      <td align=CENTER>
  180.           <B>Posted On:</B> $todays_date 
  181.      </td>
  182.      
  183. </TR>
  184.  
  185. <TR>
  186.      <td align=CENTER> 
  187.           <B>Post by:</B> $FORM{'username'}
  188.      </td>
  189.  
  190. </tr>
  191.  
  192. </TABLE>
  193.  
  194. <BR>
  195.      <table border=0 width=95% ALIGN=CENTER>
  196.       <tr>
  197.         <td width=100 valign=top align=RIGHT><b>Title: </b></td>
  198.         <td><INPUT TYPE=text name=title size=30></td>
  199.       </tr>
  200.  
  201.       <tr>
  202.         <td width=100 valign=top align=RIGHT><b>News: </b></td>
  203.         <td><textarea rows=20 name=item cols=80></textarea></td>
  204.       </tr>
  205.       <tr>
  206.         
  207.         <td COLSPAN=2 ALIGN=CENtER><input type=submit value=Add name=news_command></td>
  208.       </tr>
  209.     </table>
  210.     <br><br>
  211. </BODY>
  212. </HTML>
  213.  
  214. ~;
  215.  
  216. }
  217.  
  218. sub News_Add {
  219.  
  220. open(NEWSFILE, "news.arch");
  221. @OldNews=<NEWSFILE>;
  222. close(NEWSFILE);
  223.  
  224. $newline='<br>';
  225.  
  226. $FORM{'item'} =~ s/\r//g;
  227. $FORM{'item'} =~ s/\n/$newline/g;
  228.  
  229.  
  230. $html .= "$FORM{'username'}|$todays_date|$FORM{'title'}|$FORM{'item'}\n";
  231. foreach $line (@OldNews) {
  232.           $html .= "$line";
  233.                }
  234.  
  235. open(NEWSFILE, ">news.arch");
  236. print NEWSFILE "$html";
  237. close(NEWSFILE);
  238.  
  239.  
  240. print qq~
  241. <HTML>
  242. <BODY BACKGROUND="http://www.amiganorththames.co.uk/Gfx/bg_stripe.gif">
  243.  
  244.      <center>
  245.      <font face="arial, helvetica" color=red size=+1>
  246.      <strong>News Updated<br><br></strong></font></font></font> 
  247.      <form method=POST><input type="hidden" name="login_password" value="$FORM{'login_password'}"><input type="hidden" name="username" value="$FORM{'username'}"><input type="hidden" name="operation" value="News"><br><br>
  248. Hey! News is Updated Dude.
  249. <input type=submit value="Return to Main" Add name=operation>
  250. </BODY>
  251. </HTML>
  252.  
  253. ~;
  254.  
  255. }
  256.  
  257.  
  258. sub news_Del1 {
  259.  
  260. $recordno='1';
  261.  
  262. foreach $line (@DelMe) {
  263.  
  264. ($Nick,$time,$title,$message) = split(/\|/,$line); 
  265. $email=$adminemailaddress;
  266.  
  267. print qq~
  268. <HTML>
  269. <BODY background="http://www.amiganorththames.co.uk/Gfx/bg_stripe.gif" text="#000000" link="#DD3300">
  270.                
  271.  
  272. <table width=95% border=0 ALIGN=CENTER CELLPADDING=1 CELLSPACING=0>
  273.  
  274. <TR>
  275. <TD COLSPAN=2 ALIGN=CENTER>
  276. <HR WIDTH=98%>
  277. </TD>
  278. </TR>
  279.  
  280. <tr> 
  281.  
  282.      <td WIDTH=100 ALIGN=RIGHT>
  283. <B>Subject: </B>
  284.      </TD>
  285.      
  286.      <td ALIGN=LEFT WIDTH="*">
  287.           <font size=+1>$title</font>
  288.      </td>
  289.      
  290. </tr>
  291.  
  292. <TR>
  293.  
  294.      <TD ALIGN=RIGHT>
  295.      <B> Date: </B>
  296.      </TD>
  297.  
  298.      <TD ALIGN=LEFT VALIGN=MIDDLE>
  299.      $time
  300.      </TD>
  301.  
  302. </TR>
  303.  
  304. <tr> 
  305.  
  306.      <TD></TD>
  307.  
  308.      <td>
  309.           $message
  310.      </td>
  311.  
  312. </tr>
  313.  
  314. <TR>
  315. <TD COLSPAN=2 ALIGN=CENTER>
  316. <HR WIDTH=98%>
  317. </TD>
  318. </TR>
  319.  
  320. <TR>
  321.  
  322. <TD COLSPAN=2 ALIGN=CENTER>
  323.  
  324.      <form method=POST>
  325.           <input type="hidden" name="login_password" value="$FORM{'login_password'}">
  326.           <input type="hidden" name="username" value="$FORM{'username'}">
  327.           <input type="hidden" name="operation" value="Delete News">
  328.           <input type="hidden" name="news_command" value="DeleteYes">
  329.           <input type="hidden" name="deletethis" value="$recordno">
  330.           <input type=submit value="Delete">
  331.      </form>
  332.  
  333. </td>
  334.  
  335. </tr>
  336.  
  337. </table>
  338.  
  339.  
  340.  
  341. <br>
  342. </BODY></HTML>
  343.  
  344. ~;
  345.  
  346. $recordno = $recordno + 1;
  347.  
  348.  
  349. }
  350. }
  351.  
  352. sub news_Del2 {
  353.  
  354. print "$FORM{'deletethis'} <br>";
  355.  
  356. $recordno = '1';
  357.  
  358. foreach $line (@DelMe) {
  359.  
  360. ($Nick,$time,$title,$message) = split(/\|/,$line); 
  361. $email=$adminemailaddress;
  362.  
  363. if($recordno eq $FORM{'deletethis'}) {
  364. }
  365. else {
  366. $newsfile .="$Nick|$time|$title|$message";
  367. }
  368.  
  369. $recordno = $recordno + 1;
  370.  
  371. }
  372.  
  373. open(NEWSFILE, ">news.arch");
  374. print NEWSFILE "$newsfile";
  375. close(NEWSFILE);
  376.  
  377. print qq~
  378. <HTML>
  379. <BODY BACKGROUND="http://www.amiganorththames.co.uk/Gfx/bg_stripe.gif">
  380.  
  381.      <center>
  382.      <font face="arial, helvetica" color=red size=+1>
  383.      <strong>News Deleted<br><br></strong></font></font></font> 
  384.      <form method=POST><input type="hidden" name="login_password" value="$FORM{'login_password'}"><input type="hidden" name="username" value="$FORM{'username'}"><input type="hidden" name="operation" value="News"><br><br>
  385.  
  386. <b><center>News Post Removed</center></b>
  387. <input type=submit value="Return to Main" name=operation>
  388. </BODY>
  389. </HTML>
  390.  
  391. ~;
  392.  
  393.  
  394.  
  395.  
  396. }
  397.